import java.util.*;

/*
欧拉函数
给定 n 个正整数 ai，请你求出每个数的欧拉函数。
欧拉函数的定义:1~N中与N互质的数的个数，记为φ(N)

输入格式
第一行包含整数 n。
接下来 n 行，每行包含一个正整数 ai。

输出格式
输出共 n 行，每行输出一个正整数 ai 的欧拉函数。

数据范围
1≤n≤100,1≤ai≤2×1e9

输入样例：
3
3
6
8

输出样例：
2
2
4
 */
//public class Main {
//    static int eulerTotientFunction(int n) {
//        int res = n;
//        for (int i = 2; i <= n / i; i++) {
//            if (n % i == 0) {
//                res = res * (i - 1) / i;
//            }
//            while (n % i == 0) {
//                n /= i;
//            }
//        }
//        if (n > 1) res = res * (n - 1) / n;
//        return res;
//    }
//
//    public static void main(String[] args) {
//        Scanner sc = new Scanner(System.in);
//        int n = sc.nextInt();
//        while (n-- > 0) {
//            System.out.println(eulerTotientFunction(sc.nextInt()));
//        }
//    }
//}

/*
筛法求欧拉函数
给定一个正整数 n，求1∼n 中每个数的欧拉函数之和。

输入格式
共一行，包含一个整数 n。

输出格式
共一行，包含一个整数，表示 1∼n 中每个数的欧拉函数之和。

数据范围
1≤n≤1e6

输入样例：
6

输出样例：
12
 */
public class Main {
    static boolean[] st = new boolean[100010];
    static int cnt = 0;
    static int[] primes = new int[100010];
    static int[] eulers = new int[100010];

    static int eulerTotientFunctionLinear(int n) {
        eulers[1] = 1;
        int sum = 0;
        for (int i = 2; i <= n; i++) {
            if (!st[i]) {
                primes[cnt++] = i;
                eulers[i] = i - 1;//若i是质数，φ(i)=i-1
            }
            for (int j = 0; primes[j] <= n / i; j++) {
                st[i * primes[j]] = true;
                if (i % primes[j] == 0) {
                    eulers[primes[j] * i] = eulers[i] * primes[j];
                    break;
                }
                eulers[primes[j] * i] = eulers[i] * (primes[j] - 1);
            }
        }
        for (int i = 1; i <= n; i++) sum += eulers[i];
        return sum;
    }

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println(eulerTotientFunctionLinear(sc.nextInt()));
    }
}